Plural architecture master data management with supplemental attributes

ABSTRACT

According to one embodiment of the present invention, a system for managing data within a plurality of data management architectures includes at least one processor. The system persists an entity managed by a first data management architecture to a second data management architecture. The first data management architecture manages entity data within data sources and the second data management architecture manages persisted entities within a common repository. Entity attributes are mapped between the first and second data management architectures. The system further provides one or more supplemental attributes for the persisted (e.g., registration mode or fully persisted mode) entity within the second data management architecture, wherein the supplemental attributes are unmapped between the first and second data management architectures. Embodiments of the present invention further include a method and computer program product for managing data within a plurality of data management architectures in substantially the same manner described above.

BACKGROUND

1. Technical Field

Present invention embodiments relate to data management, and morespecifically, to master data management, utilizing a combination ofregistry and centralized type architectures, and enrichment of a profilemanaged in either of these styles with supplemental attributes.

2. Discussion of the Related Art

Master Data Management (MDM) hubs have provided two approaches for themanagement of master data. Master data typically includes informationpertaining to the operation of a business (e.g., customers, products,employees, materials, suppliers, etc.), and is generally stored indifferent data sources across that business. Each management approachaddresses different implementation styles delineated primarily on thelocation where the ownership and management of master data occurs.

In a registry style (or virtual master data management) approach, sourcesystems are the systems of record for providing master data, and changesto the master data are made through these existing source systems. Avirtual master data management system gets loaded with records from thesource systems that are associated with entities (e.g., person,corporation, company, organization, business, etc.), and determinessimilar or matching records that are associated with the same entity.The virtual master data management system stores only enough informationto match and provide linkages between the similar and matching recordsfor each of the entities. A trusted view of this information for anentity is subsequently provided to a user on demand from data within thesource systems. Since a single view of an entity is not persisted tostorage (of the virtual master data management system), modifications tomaster data are made via the source systems.

In a centralized style (or physical master data management) approach,master data from source systems is loaded into a single repository of aphysical master data management system, and all information relevant toproviding a single view of an entity is stored in that repository.Matching and collapsing of records across the source systems areperformed, and a single view of the entity is typically persisted in therepository. The physical master data management system becomes thesystem of record for managing master data from that point forward.

However, these master data management styles are not always sufficient,and do not always fully accommodate the breadth of master datamanagement requirements that commonly evolve over time with the growthand adoption of master data management techniques in support of the datagovernance strategies within an enterprise. This typically results inthe proliferation and attempts to federate multiple master datamanagement (MDM) hubs of the different styles, thereby incurringadditional integration complexity, maintenance costs, and versionalignment of supporting software.

BRIEF SUMMARY

According to one embodiment of the present invention, a system formanaging data within a plurality of data management architecturesincludes at least one processor. The system persists an entity managedby a first data management architecture to a second data managementarchitecture. The first data management architecture manages entity datawithin one or more data sources and the second data managementarchitecture manages persisted entities with data from the one or moredata sources within a common repository. One or more entity attributesof the entity are mapped between the first and second data managementarchitectures. The system further provides one or more supplementalattributes for the persisted entity within the second data managementarchitecture, wherein the one or more supplemental attributes areunmapped between the first and second data management architectures.Embodiments of the present invention further include a method andcomputer program product for managing data within a plurality of datamanagement architectures in substantially the same manner describedabove.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Generally, like reference numerals in the various figures are utilizedto designate like components.

FIG. 1 is a diagrammatic illustration of an example computingenvironment of an embodiment of the present invention.

FIG. 2 is a diagrammatic illustration of a present invention embodimentmigrating management of master data from a virtual master datamanagement system to a physical master data management system.

FIG. 3 is a flow diagram of a plural architecture master data managementsystem of a present invention embodiment utilizing virtual and physicalmaster data management systems to manage data.

FIG. 4 is a procedural flow chart illustrating a manner in which data isloaded into the plural architecture master data management systemaccording to an embodiment of the present invention.

FIG. 5 is a procedural flow chart illustrating a manner in whichmodifications to data within data sources of a virtual master datamanagement system are synchronized with data within a physical masterdata management system according to an embodiment of the presentinvention.

FIG. 6 is a procedural flow chart illustrating a manner of persistingdata from a virtual master data management system to a physical masterdata management system according to an embodiment of the presentinvention.

FIG. 7 is a procedural flow chart illustrating a manner of retrievingdata from the plural architecture master data management systemaccording to an embodiment of the present invention.

FIG. 8 is a diagrammatic illustration of a present invention embodimentmigrating management of master data from a virtual master datamanagement system to a physical master data management system andemploying supplemental attributes for the master data within thephysical master data management system.

FIG. 9 is a procedural flow chart illustrating a manner of controllingrequested operations for objects within the plural architecture masterdata management system according to an embodiment of the presentinvention.

FIG. 10 is a procedural flow chart illustrating a manner of controllingaddition and deletion operations for objects within the pluralarchitecture master data management system according to an embodiment ofthe present invention.

FIG. 11 is a procedural flow chart illustrating a manner of controllingan update operation for objects within the plural architecture masterdata management system according to an embodiment of the presentinvention.

FIG. 12 is a procedural flow chart illustrating a manner of retrievingvirtually and/or physically owned attributes from the pluralarchitecture master data management system according to an embodiment ofthe present invention.

DETAILED DESCRIPTION

Present invention embodiments manage master data in registry (orvirtual), centralized (or physical), and co-existence styles within acommon platform, and provide a framework for implementing style-agnosticservices that facilitate the management of information stored accordingto each of these styles. Master data typically includes informationpertaining to operation of a business (e.g., customers, products,employees, materials, suppliers, etc.), and is generally stored indifferent data sources across that business. However, present inventionembodiments may manage any type of data pertaining to any type ofobjects (e.g., business or other entities or organizations, animate orinanimate objects, etc.).

A single application programming interface (API) enables the style ofmaster data management (e.g., registry or virtual, centralized orphysical, etc.) to be transparent to a service consumer. A subset ofentity attributes is synchronized across the styles, and seamless,movement of master data records and/or more granular data attributesfrom one style of management to another is performed, typically from theregistry style to the centralized and/or co-existence styles within thecommon platform. Master data records from a registry style system may bemoved to a centralized style system in accordance with a set ofrule-based criteria (e.g., size of entity membership, data completeness,etc.).

Present invention embodiments significantly reduce the need to federateout to multiple, independent master data management (MDM) systems inorder to ascertain a complete picture of master data managed indifferent styles (e.g., registry and centralized styles). Further,present invention embodiments enable seamless movement of informationfrom one master data management style to another, thereby avoidingsignificant extract, transform, load (ETL) efforts to move data from onesystem to another. Moreover, as the style of master data managementchanges over time, the application programming interfaces (APIs) used toaccess information remain the same.

In addition, present invention embodiments augment entities stored inthe registry (or virtual) master data management style with closelyaffiliated, centrally managed attributes (of the physical master datamanagement style) within and across domains.

An example computing environment for use with present inventionembodiments is illustrated in FIG. 1. Specifically, computingenvironment 100 includes a master data management server system 110, oneor more client or end-user systems 114, and one or more data sources150. The data sources may be implemented by any conventional or otherstorage structures or systems (e.g., server systems, databases, filesystems, etc.) that contain records with master data pertaining tovarious entities (e.g., person, corporation, company, organization,business, etc.). However, data sources 150 may contain any type of datapertaining to any type of objects (e.g., business or other entities ororganizations, animate or inanimate objects, etc.).

Master data management server system 110, client systems 114, and datasources 150 may be remote from each other and communicate over a network112. The network may be implemented by any number of any suitablecommunications media (e.g., wide area network (WAN), local area network(LAN), Internet, Intranet, etc.). Alternatively, master data managementserver system 110, client systems 114, and data sources 150 may be localto each other, and communicate via any appropriate local communicationmedium (e.g., local area network (LAN), hardwire, wireless link,Intranet, etc.).

Master data management server system 110 provides a plural architecturemaster data management system 155 including a virtual (or registry type)master data management system 160 and a physical (or centralized) masterdata management system 170. Client systems 114 enable users to provideinformation to master data management server system 110 to configure,load and/or query the plural architecture master data management system.In particular, the master data management server system includes virtualmaster data management system 160 with virtual master data managementsystem modules 161, physical master data management system 170 withphysical master data management system modules 171, a request processingframework 180, and an entity management module 190. Virtual master datamanagement system modules 161 implement virtual master data managementsystem 160. In this type of system, data sources 150 provide andmaintain master data, and changes to the master data are made throughthese data sources. The virtual master data management system modulesprocess records from data sources 150 to determine records associatedwith the same entity (e.g., person, corporation, company, organization,business, etc.), and store only enough information to match and providelinkages between similar and matching records from the data sources forthe various entities.

Virtual master data management system modules 161 include a matching andlinking engine 162 to process records from the data sources anddetermine records associated with the same entity (e.g., person,corporation, company, organization, business, etc.). The determinedrecords for an entity are linked, and this linkage information is storedand maintained by matching and linking engine 162. The records for anentity may be matched based on any conventional or other suitablematching or partial matching techniques (e.g., a quantity of the same orsimilar fields, matching scores, probabilistic matching, etc.).

Queries may be provided directly to the virtual master data managementsystem from users/applications using the same APIs for virtual-owneddata whose view is not fully persisted in the physical master datamanagement system. In this case, a trusted view of entity informationmay be provided on demand by the virtual master data management systemby utilizing the linking information to obtain records associated withthe entity from the various data sources. Alternatively, the virtualmaster data management system may process queries for entities receivedby services of the physical master data management system as describedbelow.

Physical master data management system modules 171 implement acentralized or physical master data management system. In this type ofsystem, master data from data sources 150 is loaded into a singlerepository, and all information relevant to providing a single view ofan entity is stored in that repository. Matching and collapsing ofrecords across the data sources are performed, and a single view of anentity is persisted in the repository. Once the data is loaded in therepository, the data is utilized to process requests (e.g., updates,queries, etc.) or may be associated with information from another domain(e.g., product, account, etc.) that is being centrally managed. Thevirtual and physical master data management systems may be implementedby any conventional or other registry and/or centralized master datamanagement systems (e.g., virtual and physical master data managementsystems of IBM INFOSPHERE Master Data Management (MDM), etc.).

A database system 118 may store various information for the datamanagement (e.g., serve as the repository for the physical master datamanagement system, metadata, data models of the virtual and physicalmaster data management systems, mapping and linking information, etc.).The database system may be implemented by any conventional or otherdatabase or storage unit, may be local to or remote from master datamanagement server system 110, and may communicate via any appropriatecommunication medium (e.g., local area network (LAN), wide area network(WAN), Internet, hardwire, wireless link, Intranet, etc.). The clientsystems may present a graphical user (e.g., GUI, etc.) or otherinterface (e.g., command line prompts, menu screens, etc.) to solicitinformation from users pertaining to the data management, and mayprovide reports including results (e.g., query results, configurationinformation, etc.).

Request processing framework 180 receives and processes requests formaster data stored within the plural architecture master data managementsystem as described below. This framework may be implemented by anyconventional or other framework for processing data management requests(e.g., a request processing framework of IBM INFOSPHERE Master DataManagement (MDM), etc.).

Entity management module 190 enables utilization of the virtual andphysical master data management systems for data management, andcontrols movement, access, and retrieval of master data within thesedata management systems as described below. In addition, the entitymanagement module enables addition of supplemental attributes within thephysical master data management system and controls various operations(e.g., addition, deletion, update, etc.) performed on those attributesas described below. The entity management module includes an entityevent notification module 192, a services module 194, and an attributecontrol module 196. The entity event notification module providesnotification of a modification to an entity within data sources 150 asdescribed below. The entity event notification module 192 also providesextension capability so that business rules can be implemented toconditionally persist the entity view in the physical master datamanagement system. That is, metrics could be taken to establish whetherthe content of a view is complete or clean enough to persist that viewin the physical master data management system. This can beevaluated/calculated and a decision made in the event notificationcomponent.

Services module 194 provides various services for the pluralarchitecture master data management system (e.g., persisting entities,querying entities, adding/deleting/updating/retrieving supplementalattributes, etc.) as described below. Attribute control module 196controls various operations (e.g., addition, deletion, update, etc.)performed on persisted entities as described below. The entitymanagement module may be external of, or fully or partially residewithin, the virtual master data management and physical master datamanagement systems in any fashion. For example, event notificationmodule 192 may reside within virtual master data management systemmodules 161, while services module 194 and attribute control module 196may reside within physical master data management system modules 171.

Master data management server system 110, client system 114, and datasources 150 may be implemented by any conventional or other computersystems preferably equipped with a display or monitor, a base (e.g.,including at least one processor 115, one or more memories 135 and/orinternal or external network interfaces or communications devices 125(e.g., modem, network cards, etc.)), optional input devices (e.g., akeyboard, mouse or other input device), and any commercially availableand custom software (e.g., server/communications software, virtualmaster data management system modules, matching and linking engine,physical master data management system modules, request processingframework, entity management module, entity event notification module,services module, attribute control module, browser/interface software,etc.).

The modules of master data management server system 110 (e.g., virtualmaster data management system modules, matching and linking engine,physical master data management system modules, request processingframework, entity management module, entity event notification module,services module, attribute control module, etc.) may include one or moremodules or units to perform the various functions of present inventionembodiments described below. The various modules (e.g., virtual masterdata management system modules, matching and linking engine, physicalmaster data management system modules, request processing framework,entity management module, entity event notification module, servicesmodule, attribute control module, etc.) may be implemented by anycombination of any quantity of software and/or hardware modules orunits, and may reside within memory 135 of the master data managementserver system for execution by processor 115.

Present invention embodiments may accommodate various scenariosemploying virtual and physical master data management systems to managemaster data. For example, master data may be currently managed in avirtual master data management system, but eventually some master dataattributes are desired to be managed in a physical master datamanagement system as illustrated in FIG. 2. Present inventionembodiments enable the entity to be persisted from the virtual to thephysical master data management system. By way of example, an entity 165is managed by virtual master data management system 160 provided bymaster data management server system 110. The entity includes severaldata records from various data sources 150 that are linked, and isassociated with an entity identification 167 to uniquely identify theentity within the virtual master data management system.

The entity may be persisted to physical master data management system170 provided by master data management server system 110. In this case,a party identification 169 is generated for uniquely identifying theentity (or party) within the physical master data management system, andmapped to entity identification 167. The entity may be persisted in aregistration mode, where link information 175 for the entity may bepersisted in the physical master data management system. The linkinformation is utilized to retrieve the entity records from the virtualmaster data management system. Alternatively, the entity may bepersisted in a fully persisted mode, where the records for the entityare centrally stored in a repository of the physical master datamanagement system (e.g., database system 118). In this case, the recordsfor the persisted entity (or party) may be retrieved from the centrallystored data.

Various services are provided (e.g., by entity management module 190)that access the virtual and/or physical master data management systemsto provide data in response to queries. Once the entity is persisted inthe physical master data management system, client applications may bedeveloped without having to face significant rework by leveragingcentrally-managed, persisted attributes.

Another example scenario accommodated by present invention embodimentsincludes enhancing performance. For example, virtual master datamanagement system 160 is initially employed. However, performancedegradation occurs in response to retrieving some entities due to alarge number of records or members (e.g., thousands, etc.) that belongto those entities. Retrieval may be enhanced by persisting a view ofthese large entities within physical master data management system 170.

Yet another example scenario accommodated by present inventionembodiments includes conditional persistence. For example, virtualmaster data management system 160 is initially employed to manage andstore entities. However, views of these entities may be conditionallypersisted within physical master data management system 170 based onvarious criteria. By way of example, views of entities may beconditionally persisted in response to satisfying pre-configured oruser-specified data characteristics (e.g., surpassing a particular levelof data completeness or data quality, etc.).

A flow diagram of plural architecture data management system 155 isillustrated in FIG. 3. Initially, master data management server system110 provides virtual master data management and physical master datamanagement systems 160, 170 (e.g., via virtual master data managementand physical master data management system modules 161, 171) asdescribed above. Data can be created and/or managed, using a single setof services, in either data sources 150 (e.g., via the virtual masterdata management system) or in a repository (e.g., database system 118)that is centrally managed (e.g., via the physical master data managementsystem).

Initially, linking and matching engine 162 of virtual master datamanagement system 160 receives and processes records of master data fromvarious data sources 150, and determines records associated with thesame entity (e.g., person, corporation, company, organization, business,etc.). The determined records for an entity 302 are linked, and thislinkage information is stored and maintained by matching and linkingengine 162 within virtual master data management system 160.

Since master data is generally stored in different data sources 150, themaster data may be duplicated and inconsistent. Thus, once records forthe entities are matched and linked, a plurality of views may exist forthe same entity with varying data. Accordingly, a view 304 for an entityis selected (e.g., by a user or automatically), and may be persisted tothe repository of the physical master data management system (e.g.,database system 118) via services (e.g., persistEntity, etc.) providedby services module 194 of entity management module 190. A partyidentification is generated for uniquely identifying the persistedentity (or party) within the physical master data management system, andmapped to an entity identification for the virtual master datamanagement system. This associates the entity of the virtual master datamanagement system with the corresponding party in the physical masterdata management system. Further, rules may be applied to conditionallypersist certain entities based on a set of criteria (e.g., completeness,data quality of created entity view, entity size (e.g., number ofmembers or records in the entity), etc.).

A persisted entity (or party) 306 may be represented in the physicalmaster data management system in various manners. For example, theentity may be persisted in a registration mode, where a set of entityidentifiers including an entity identification to identify thecorresponding virtual representation (e.g., the entity within thevirtual master data management system) and a corresponding set of uniquerecord identifiers for the member records comprising the entity arestored in party records in the repository. The record identifiersuniquely identify a particular member record of an entity in a datasource 150. The party records further include a status indicator thatindicates the absence of a full persisted view of the entity in therepository of the physical master data management system.

The entity may further be persisted in a fully persisted mode, where theselected view of the entity is stored in party records within therepository of the physical master data management system. The partyrecords include the status indicator indicating that a persisted view ofthe entity is stored in the repository. The status indicator may includeany suitable values to indicate the persistence mode. By way of exampleonly, a value of one indicates a registration mode of persistence, whilea value of two indicates a full persistence.

The status indicator enables the plural architecture master datamanagement system to conditionally derive the entity view from thevirtual master data management system or from a stored representation inthe repository of the physical master data management system. Thisprovides several advantages. For example, generation of the selectedview for large entities that include numerous (e.g., thousands, etc.)member records may take a significant amount of time. However, the timeto retrieve this representation dramatically decreases by fullypersisting the results of this view when first constructed. Further, asingle application programming interface (API) can be used to provideservices to retrieve entities for consuming systems regardless ofwhether the entities are virtually managed or physically managed in theplural architecture master data management system. This enablesgeneration of consuming client applications early in the data managementprocess and, as business needs evolve, the same set of applicationprogramming interfaces (APIs) remain functional for both virtual andphysical master data management.

As critical data (e.g., used in matching and identifying duplicaterecords, etc.) changes in data sources 150 or in the central repositoryof the physical master data management system, entity event notificationmodule 192 of entity management module 190 triggers the sharing of thisinformation. For example, a modification (e.g., add, update, etc.) todata or an entity within data sources 150 may occur. Matching andlinking engine 162 matches and links records of the data sources inorder to determine if the selected view of the entity has changed. Ifthe selected view has changed, entity event notification module triggerspropagation of the modification to the persisted entity (or party) inthe physical master data management system.

In the event that data of a fully persisted entity (or party) isoriginally changed in the repository of the physical master datamanagement system, the modification may be propagated to data sources150 by the virtual master data management system via a notificationmechanism that each of the source systems may subscribe to in order toconsume the change consistently.

Queries for the plural architecture master data management system arereceived by request processing framework 180 from client systems 114,and handled by services module 194 of entity management module 190. Theservices module provides various application programming interfaces(APIs) or services (e.g., getParty, getPerson, getOrganization,getPartyByAdminSysKey, getPartyByEntityId, etc.) to retrieve data (e.g.,person, entity, etc.) based on various criteria (e.g., system keys,entity identifiers, etc.). The queries may be applied directly againstthe repository when entities are fully persisted therein. However, whena queried entity is persisted in a registration mode (e.g., storage ofentity identifiers), the services module retrieves data for the queriedentity from the virtual master data management system. In this case, thevirtual master data management system utilizes the set of entityidentifiers for the entity stored in the repository in order to retrievedata from data sources 150 and generate the selected view for thequeried entity.

A manner of loading data from data sources 150 into the pluralarchitecture master data management system (e.g., via master datamanagement server system 110 and virtual master data management systemmodules 161, physical master data management system modules 171, andentity management module 190) is illustrated in FIG. 4. Initially,configuration and other data are prepared at step 405. The preparationtypically includes defining a data model for the virtual master datamanagement system (or virtual data model), and mapping data fields (orentity attributes) of the virtual data model to corresponding datafields (or party attributes) of a data model of the physical master datamanagement system (or physical data model). The physical data modelemploys various business objects (representing parties and partyattributes), while the virtual model is based on entities (with entityattributes) that may be mapped to the business objects. The virtual andphysical data models are typically maintained in database tables ofdatabase system 118 (FIG. 1), where the mapping provides associationsbetween corresponding fields of database tables (for entities andparties) of the virtual and physical data models. The mapping may beinitiated using a pre-defined physical data model, where the pre-definedmodel may be expanded to accommodate varying data requirements.

The mapping between the virtual and physical models further indicatesthe attributes of parties of the physical data model defined as businesskeys. Business keys are used to determine uniqueness constraints of anattribute (e.g., name, address, etc.) within the selected view, and areutilized to determine when an attribute is to be updated or created inthe physical master data management system as described below. Abusiness key for an attribute includes one or more fields that identifyan attribute and provide uniqueness constraints for the selected view.For example, a business key for a person name attribute may be the nameusage type, thereby providing one name per name type in the selectedview. Alternatively, the business key may be name type, first name, lastname, thereby providing more than one name per name type in the selectedview if the first and last names are different.

In addition, the mapping may include transcoding functions to enablevalues of certain data within the virtual data model to be converted tocompatible values within the physical data model for persistence of thatdata within the physical master data management system. For example, agender attribute within the virtual data model may include values of 0(e.g., indicating female) and 1 (e.g., indicating male), while acorresponding attribute of the physical data model may include values of‘F’ (e.g., indicating female) and ‘M’ (e.g., indicating male). Thetranscoding function converts the values of 0 and 1 within the virtualdata model to the corresponding compatible values within the physicaldata model of ‘F’ and ‘M’ for persistence of that attribute within thephysical master data management system.

As a further example of a transcoding function, a person name attributein the virtual data model may be mapped to a person name business objectin the physical data model. The person name attribute of the virtualdata model includes an attribute code field which is mapped to a nameusage type attribute within the person name business object in thephysical data model. A transcoding function in this example case mayread the attribute code value, and look up an equivalent value for thename usage type from a look-up variable or table. For example, if thevalue of the attribute code indicates a legal name (e.g.,‘PERLEGALNAME’), a corresponding transcoded value for the name usagetype could be a ‘1’ (representing a legal name in the physical datamodel).

Since master data is generally stored in different data sources 150, themaster data may be duplicated and inconsistent. Accordingly, datacleansing and standardization (e.g., provide a common format for datafields (e.g., date, time, etc.)) processes may further be specified,while a matching algorithm for associating member records of an entitymay be defined and/or selected. The matching algorithm assists withde-duplication of data from the data sources. The virtual and physicaldata models, mapping, cleansing, standardization, and matching may bepre-configured into the plural architecture master data managementsystem, or entered by a user via a user interface.

Source records from data sources 150 are loaded into the virtual masterdata management system (e.g., via virtual master data management systemmodules 161) and processed in accordance with the specified datacleansing and standardization at step 410. The source records arecross-matched at step 415 (e.g., via matching and linking engine 162)based on the specified matching algorithm to determine recordsassociated with the same entity. Information linking member records totheir associated entity is stored (without storing the actual recorddata). Various conventional and other matching or partial matchingtechniques may be employed (e.g., a quantity of the same or similarfields, matching scores, probabilistic matching, etc.).

The resulting entities are registered with the physical master datamanagement system (e.g., via entity management module 190) at step 420by persisting limited link information for the entities (e.g.,information to map the entity between the physical and virtual masterdata management systems). The registration may be configured toascertain link and other information from various sources. For example,link and other information may be obtained from a bulk cross matchingprocess, or from the matching and linking entity management serviceperformed by the virtual master data management system.

Once the entities are registered, the entities may be persisted to thephysical master data management system (e.g., via services module 194(e.g., persistEntity service)) at step 425 (e.g., as described below forFIG. 6). Since master data is generally stored in different data sources150, the master data may be duplicated and inconsistent. Accordingly,several views of an entity (e.g., with varying data from data sources150) may be generated by the virtual master data management system. Auser may select a desired view via a user interface to provide acomposite view to be persisted, or a generated view may be selected bythe virtual master data management system via various criteria toprovide the composite view for persistence.

Alternatively, entity persistence can be performed in batch. In thebatch case, batch files are prepared, and may be submitted forprocessing either automatically as part of the registration or manually.The batch files include an entity identification and entity type, andmay persist entities of a common or different entity types. In addition,rules may be applied to conditionally persist certain entities based ona set of criteria (e.g., completeness, data quality of created entityview, entity size (e.g., number of members or records in the entity),etc.).

Entities may be persisted in a registration mode or a full persistencemode. The information persisted for an entity in a registration modeincludes the entity identification, entity type, data sourceidentifiers, and member record identifiers. The data for the entityremains within data sources 150 and is retrieved by the virtual masterdata management system to generate the selected view. Full persistencemode maintains the persisted entity (e.g., entity attributes and memberrecords) in the repository of the physical master data managementsystem. Basically, the entity is converted to a corresponding businessobject (or party) of the physical data model based on the mappings forpersistence in the physical master data management system.

Once the desired entities are persisted in the physical master datamanagement system, the plural architecture master data management systemmaintains data integrity of persisted entities with data in the virtualmaster data management system. This is accomplished by synchronizingmodifications to data in the virtual master data management system withthe persisted view of the entity in the physical master data managementsystem. A manner of synchronizing data of the virtual master datamanagement system with corresponding persisted entity views (e.g., viamaster data management server system 110 and virtual master datamanagement system modules 161, physical master data management systemmodules 171, and entity management module 190) is illustrated in FIG. 5.Initially, the virtual master data management system receives datamodifications (e.g., updates, additions, deletions, link alterations ofrecords, etc.) at step 505. The modifications may include modifications(e.g., addition, deletion, updates, etc.) to data within data sources150, and/or modifications to links of records forming an entity (e.g., arecord of an entity may be modified to link the record with anotherentity). Matching and linking engine 162 matches and links records ofthe data sources at step 510 in order to determine if the selected viewof the entity has changed (e.g., new or different member records, datawithin the member records has changed, etc.). If the selected view haschanged as determined at step 515, entity event notification module 192triggers an entity change event at step 520.

The entity change event invokes services module 194 (e.g., persistEntityservice) to add, update, or delete the persisted entity (or party) inaccordance with the modification (e.g., modification to data or links ofmember records) at step 525. The business keys of an entity attributemay be utilized to determine the presence of new information for acorresponding attribute of the persisted entity (or party), or thepresence of updated information for the corresponding attribute of thepersisted entity (or party). The modified view (e.g., with the added,updated, or deleted information) is persisted in the physical masterdata management system at step 530 (e.g., as described below for FIG.6).

Alternatively, rules may be applied to conditionally persist certainentities in response to an entity change event and based on a set ofcriteria (e.g., completeness, data quality of created entity view,entity size (e.g., number of members or records in the entity), etc.).

A manner of persisting an entity to the physical master data managementsystem (e.g., via master data management server system 110 and virtualmaster data management system modules 161, physical master datamanagement system modules 171, and entity management module 190) isillustrated in FIG. 6. Initially, the selected (or composite) view forthe entity is requested from the virtual master data management systemat step 605. The selected view may represent a new entity (forpersistence), or an existing (persisted) entity with modified data. Thevirtual master data management system typically generates the selectedview for the entity on demand from data within data sources 150. Thisensures the most recent data for persistence. The selected (orcomposite) view includes the business keys of the entity attributes, andis generated in accordance with the constraints of those business keys(e.g., indicating a quantity of unique data instances for an attribute,etc.). An internal service is utilized to determine the attributes ofthe entity in the virtual data model that correspond to business keys inthe physical data model.

When no view is returned for the entity (e.g., a deleted or obsoleteentity has been requested) as determined at step 610, the entity isdeleted (e.g., via services module 194) at step 635. However, when theselected (or composite) view is returned for the entity, the mapping tothe physical master data management system for the entity is applied(e.g., via entity management module 190) to convert the entity to thecorresponding business object (or party) within the physical data modelat step 615. In addition, transcoding functions within the mappings areapplied to convert values within the virtual data model to compatiblevalues within the physical data model.

The entity identification and corresponding member record identifiersare added, updated and/or deleted (e.g., registration persistence mode)within the physical master data management system (e.g., via servicesmodule 194 (e.g., persistEntity service)) in accordance with the actionperformed on the entity (e.g., add, modify, or delete an entity orcorresponding attributes) at step 620. The action may be determinedbased on a comparison of the business keys of attributes for the entityand party within the virtual and physical master data managementsystems. For example, a new business key (not within the physical masterdata management system) may indicate addition of an attribute (and/orentity), while an existing business key value may indicate an attribute(and/or entity) update. Removal of the business keys may indicatedeletion of the attribute and/or entity. The party identification mayfurther be utilized to distinguish between actions for attributes andentities as a whole. The information for the entity within the virtualdata model is updated within the converted business object (or party)(and corresponding party records of the database tables) of the physicaldata model indicated by the mappings.

When the entity is being fully persisted, the corresponding data of theentity is added, updated or deleted in the repository of the physicalmaster data management system in accordance with the action performed onthe entity (e.g., via services module 194 (e.g., persistEntity service))at step 630. The action may be determined based on a comparison of thebusiness keys of attributes for the entity and party within the virtualand physical master data management systems as described above. Theinformation for the entity in the virtual data model is updated withinthe corresponding converted business object (or party) (and partyrecords of the database tables) of the physical data model indicated bythe mappings.

A manner of processing queries for entities within the pluralarchitecture master data management system (e.g., via master datamanagement server system 110 and virtual master data management systemmodules 161, physical master data management system modules 171, requestprocessing framework 180, and entity management module 190) isillustrated in FIG. 7. Initially, a query for an entity is received byrequest processing framework 180 at step 705. The query is passed toservices of services module 194 (e.g., getParty, getPerson,getOrganization, getPartyByAdminSysKey, getPartyByEntityId, etc.) toprocess the query. These services retrieve entities (e.g., person,organization, etc.) and/or parties within the virtual and/or physicalmaster data management systems based on various criteria (e.g., entityor party identification, system keys, etc.). The entity is initiallyretrieved from the repository within the physical master data managementsystem, and the status indicator is examined to determine the type ofpersistence. If the entity is fully persisted as determined at step 710,the entity data is retrieved from the repository of the physical masterdata management system at step 715, and the results are returned at step740.

When the entity is persisted in the registration mode (e.g., the entityidentification and member record identifiers are persisted) asdetermined at step 720, the entity data is retrieved from the virtualmaster data management system at step 725, and the results are returnedat step 740. In this case, the virtual master data management systemutilizes the entity identification and member record identifiers togenerate the selected entity view from data retrieved from data sources150.

When the entity is registered (and not persisted) in the physical masterdata management system as determined at step 730, the entity data isretrieved from the virtual master data management system at step 735,and the results are returned at step 740. In this case, the virtualmaster data management system utilizes the mapping between the virtualand physical master data management systems (e.g., mapping of entity andparty identifications) to identify the corresponding entity within thevirtual master data management system and generate the entity view fromdata retrieved from data sources 150.

Present invention embodiments may further enrich master data records ofan entity (e.g., data records within the selected view for the entity)by adding supplemental attributes (e.g., attributes that are notavailable in any data sources 150 and, therefore, not present in theselected view). However, no data in the master data records for theentity that originated from data sources 150 and present in the selectedview should be altered. This ensures that the data integrity of themaster data records (e.g., of the selected view) is preserved for theplural architecture master data management system. In addition, theenriched master data records including the supplemental attributes maybe retrieved. For example, no modifications to a party address in masterdata records (for a persisted entity) may be performed since the partyaddress is available in data sources 150 and returned in a selectedview. However, the master data records (for the persisted entity) may beenriched with privacy preference values (that can be subsequentlyretrieved) since these are supplemental attributes (e.g., that are notavailable in the data sources and selected view).

Present invention embodiments leverage the mapping created betweenvirtual and physical data models to identify virtually-owned attributes(e.g., attributes managed by the virtual master data management system)of a master data record for an entity. This mapping information isutilized to control performance of a requested service and acorresponding proposed alteration to the master data record in order topreserve the value of virtually-owned attributes as represented in theselected view. Inquiry service logic is employed to retrieve theenriched master data records containing both virtually-owned attributesand supplemental (or physically-owned) attributes (e.g., attributesmanaged by the physical master data management system) by a singleapplication programming interface (API).

Present invention embodiments employing supplemental attributes provideseveral advantages. For example, clear delineation is provided betweenvirtually-owned attributes and supplemental attributes in a master datarecord for an entity, while a single set of master data managementapplication programming interfaces (APIs) enable retrieval of enrichedmaster data records containing both virtually-owned and supplemental (orphysically-owned) attributes. Further, existing mapping information forthe virtual and physical data models may be re-used to derive dynamicbehavior for physical master data management persistent transactionswithout requiring any ongoing maintenance or custom coding. Moreover, noadditional administration or operational data are required for thephysical master data management system to identify the master datarecords for the selected view. Thus, present invention embodimentsenable enrichment and retrieval of master data records with minimalmaintenance, administration, and performance impact.

Present invention embodiments may further accommodate scenarios withsupplemental attributes, where data records of data sources 150 for anentity are maintained in the virtual master data management system,while a master data record for that entity is persisted in the physicalmaster data management system. A user may further enrich the master datarecord for the entity with supplemental attributes (e.g., privacypreference data, etc.), and retrieve the enriched master data record forthe entity containing virtually-owned and supplemental (orphysically-owned) attributes. The mapping between the virtual andphysical data models includes information used to identify theattributes that cannot be altered by users in the physical master datamanagement system (since their modification would affect the integrityof corresponding attributes in the virtual master data managementsystem).

For example, some master data attributes are managed in a virtual masterdata management system, but a persisted enterprise view of the data isdesired in a physical master data management system with additional,centrally managed attributes and the services to maintain thoseattributes. Referring to FIG. 8, present invention embodiments enablethe entity to be persisted from the virtual to the physical master datamanagement system and to be augmented with supplemental attributes. Byway of example, an entity 165 is managed by virtual master datamanagement system 160 provided by master data management server system110. The entity includes several data records from various data sources150 that are linked, and is associated with an entity identification 167to uniquely identify the entity within the virtual master datamanagement system.

The entity may be persisted to physical master data management system170 provided by master data management server system 110. In this case,a party identification 169 is generated for uniquely identifying theentity (or party) within the physical master data management system, andmapped to entity identification 167. The entity may be persisted in aregistration mode, where link information 175 for the entity may bepersisted in the physical master data management system. The linkinformation is utilized to retrieve the entity records from the virtualmaster data management system. Alternatively, the entity may bepersisted in a fully persisted mode, where the records for the entityare centrally stored in a repository of the physical master datamanagement system (e.g., database system 118). In this case, the recordsfor the persisted entity (or party) may be retrieved from the centrallystored data.

Once the entity is persisted (e.g., in either registration or fullpersistence mode), supplemental attributes 800 may be added via servicesmodule 194 (e.g., application programming interfaces (APIs) of thephysical master data management system) to augment the persisted entity,and are stored within the repository of the physical master datamanagement system. The supplemental attributes are any attributes to bemaintained in addition to information stored for the persisted entity(e.g., party privacy preference data, party alerts, information (e.g.,names, addresses, contacts, party identifications, bank accounts, chargecards, etc.) with custom usage types not yet mapped between the virtualand physical data models, etc.), attributes within the business objectsthat are not mapped between the virtual and physical data models, etc.).These attributes are stored and managed by the physical master datamanagement system. Any attributes contained in the mapping between thevirtual and physical data models described above (e.g., FIG. 4) cannotbe utilized as a supplemental attribute (since modification of thesetypes of attributes would affect the integrity of correspondingattributes in the virtual master data management system).

The supplemental attributes may be retrieved through inquiry applicationprogramming interfaces (APIs) or services (e.g., getParty, etc.) ofservices module 194 based on a provided inquiry level, or throughrespective fine-grained transactions for those attributes. Thesupplemental attributes are typically not moved when an entity moves toanother entity. In addition, various services are provided (e.g., byentity management module 190) that access the virtual and/or physicalmaster data management systems to provide virtually-owned and/orsupplemental attributes in response to queries. Once the entity ispersisted in the physical master data management system, clientapplications may be developed without having to face significant reworkby leveraging centrally-managed, persisted attributes.

Present invention embodiments utilize the mapping created betweenvirtual and physical data models to control performance of a requestedservice and a corresponding proposed alteration in order to preserve thevalue of virtually-owned attributes as represented in the selected view.In other words, if an attribute is virtually-owned, the attribute shouldnot be modified by a physical master data management service.

By way of example only, the plural architecture data management systemmay include within the physical master data management system:

1) a person business object mapped to a corresponding attribute in thevirtual master data management system without any transcoding;

2) a person name business object mapped to a corresponding attribute inthe virtual master data management system with example transcoded valuesof 1, 2, 3, 4, 5, 6, 7, and 8 for a name usage type mapping; and

3) a party privacy preference object (e.g., a supplemental attribute)that is not mapped to an attribute of the virtual master data managementsystem.

In this example case, the master data records for an entity may beenriched by the following (since these actions would not affect avirtually-owned attribute):

1) adding, deleting or updating a party privacy preference object (e.g.,a supplemental attribute) (e.g., since this object is not mapped to acorresponding attribute in the virtual master data management systemand, therefore, would not affect a virtually-owned attribute);

2) adding or deleting a person name business object with a name usagetype of 10 (e.g., since a transcoding value of 10 is not mapped to avalue of a corresponding attribute in the virtual master data managementsystem and, therefore, would not affect a virtually-owned attribute);

3) updating a mapped attribute of a person name business object with aname usage type of 10 (e.g., since a transcoding value of 10 is notmapped to a value of a corresponding attribute in the virtual masterdata management system and, therefore, would not affect avirtually-owned attribute);

4) updating a non-mapped attribute of a person name business objectregardless of the value of the name usage type (e.g., since a non-mappedattribute is not mapped to a corresponding attribute in the virtualmaster data management system and, therefore, would not affect avirtually-owned attribute); and

5) updating a non-mapped attribute of a person business object (e.g.,since this attribute is not mapped to a corresponding attribute in thevirtual master data management system and, therefore, would not affect avirtually-owned attribute).

In contrast, the following actions would not be allowed in this examplecase (since the action would affect a virtually-owned attribute):

1) adding or deleting a person business object (e.g., since this objectis mapped to a corresponding attribute in the virtual master datamanagement system and, therefore, would affect a virtually-ownedattribute);

2) adding or deleting a person name business object with a name usagetype of 1 (e.g., since a transcoding value of 1 is mapped to a value ofa corresponding attribute in the virtual master data management systemand, therefore, would affect a virtually-owned attribute);

3) updating a mapped attribute of a person name business object with aname usage type of 1 (e.g., since a transcoding value of 1 is mapped toa value of a corresponding attribute in the virtual master datamanagement system and, therefore, would affect a virtually-ownedattribute); and

4) updating a mapped attribute of a person business object (e.g., sincethis object is mapped to a corresponding attribute in the virtual masterdata management system and, therefore, would affect a virtually-ownedattribute).

A manner of controlling performance of a requested service (e.g., viamaster data management server system 110 and virtual master datamanagement system modules 161, physical master data management systemmodules 171, request processing framework 180, and/or entity managementmodule 190) for an object (or persisted entity) within the physicalmaster data management system is illustrated in FIG. 9. Initially, themapping for entities between the virtual and physical data models isutilized to transfer the entities, attributes, and associated conditions(e.g., transcoding) to the physical master data management system. Apersist operation, service, or transaction with a requested alteration(e.g., add, update, delete, etc.) for an object (or persisted entity)within the physical master data management system is received (e.g., viarequest processing framework 180) at step 905 and initially processed(e.g., by services module 194 of entity management module 190). Thereceived transaction is intercepted (e.g., via attribute control module196) at step 910, and mapping information for the virtual and physicaldata models is retrieved at step 915.

The mapping information is utilized (e.g., by attribute control module196) to validate whether the transaction (e.g., for the object in thephysical master data management system and a corresponding requestedalteration (e.g., add, update, delete, etc.)) is allowed based on which(e.g., virtual or physical) master data management system owns ormanages object attributes. If an object attribute is virtually-owned,the object attribute should not be modified by the transaction (e.g., aphysical master data management service) in order to preserve theselected view. The object to be processed by the transaction and therequested alteration are examined against the mapping information (andincluded conditions (e.g., transcoded values, etc.)) in order todetermine whether the requested alteration is allowed as describedbelow.

When the transaction is permitted as determined at step 920, thetransaction is allowed to continue at step 925. This may be accomplishedby setting a flag indicating this condition (e.g., to services module194 performing the transaction). If the transaction is not permitted(e.g., the transaction is attempting to modify an object with avirtually-owned attribute), the entire unit of work is rejected androlled back at step 930. In this case, the flag may be set to indicate aroll back transaction (e.g., to services module 194 to perform the rollback).

A manner of controlling performance of an addition or deletion operationfor an object (or persisted entity) within the physical master datamanagement system (e.g., via master data management server system 110and virtual master data management system modules 161, physical masterdata management system modules 171, request processing framework 180,and/or entity management module 190) is illustrated in FIG. 10.Initially, an addition or deletion operation, service, or transactionfor an object (e.g., business object, etc.) within the physical masterdata management system is received and intercepted, where mappinginformation for the virtual and physical data models is retrieved asdescribed above. The mapping information is examined to determine if theobject has been mapped between the virtual and physical data models(e.g., via attribute control module 196). When the object is not mappedas determined at step 1005 (e.g., resides only in the physical masterdata management system), the transaction is allowed at step 1020 sinceany modification (e.g., addition or deletion of an object) would notaffect virtually-owned attributes (e.g., in the selected view generatedby virtual master data management system 160 from data sources 150).This may be accomplished by setting a flag indicating this condition(e.g., to services module 194 performing the operation).

If the object has been mapped as determined at step 1005, the mappinginformation is examined (e.g., via attribute control module 196) todetermine the presence of transcoded values defined within the mappingfor the object. When transcoded values are not defined within themapping for the object as determined at step 1010, the transaction isnot permitted, and rolled back at step 1025 since any modification(e.g., addition or deletion of an object) would affect the mapped,virtually-owned attributes (e.g., in the selected view generated byvirtual master data management system 160 from data sources 150). Inthis case, the flag may be set to indicate a roll back transaction(e.g., to services module 194 to perform the roll back).

If transcoded values are defined within the mapping for the object asdetermined at step 1010, the object is examined (e.g., via attributecontrol module 196) to determine the presence within the object of anyof the specific transcoded values defined in the mapping. When one ormore transcoded values from the mapping are present within the object,the operation is not permitted, and rolled back at step 1025 since anymodification (e.g., addition or deletion of an object) would affect themapped, virtually-owned attributes (e.g., in the selected view generatedby virtual master data management system 160 from data sources 150). Inthis case, the flag may be set to indicate a roll back transaction(e.g., to services module 194 to perform the roll back).

However, if none of the specific transcoded values defined in themapping are present within the object as determined at step 1015, thetransaction is permitted since any modification (e.g., addition ordeletion of an object) would not affect the mapped, virtually-ownedattributes (e.g., in the selected view generated by virtual master datamanagement system 160 from data sources 150). This may be accomplishedby setting a flag indicating this condition (e.g., to services module194 performing the operation).

For example, a business object of the physical master data managementsystem may be mapped to a corresponding attribute in the virtual masterdata management system with example transcoded values of 1, 2, 3, 4, 5,6, 7, and 8 for a mapped attribute. If the requested alteration is for abusiness object with a transcoded value of 10 for the mapped attribute,this alteration is permitted since the requested business object (e.g.,with a transcoded value of 10) does not include any of the specifictranscoded values from the mapping (e.g., transcoded values from 1-8).However, any requested alteration for a business object with atranscoded value in the range of 1-8 defined in the mapping for themapped attribute is blocked or prevented.

A manner of controlling performance of an update operation for an object(or persisted entity) within the physical master data management system(e.g., via master data management server system 110 and virtual masterdata management system modules 161, physical master data managementsystem modules 171, request processing framework 180, and/or entitymanagement module 190) is illustrated in FIG. 11. Initially, an updateoperation, service, or transaction for an object (e.g., business object,etc.) within the physical master data management system is received andintercepted, where mapping information for the virtual and physical datamodels is retrieved as described above. The mapping information isexamined to determine if the object has been mapped between the virtualand physical data models (e.g., via attribute control module 196). Whenthe object is not mapped as determined at step 1105 (e.g., resides onlyin the physical master data management system), the transaction isallowed at step 1130 since any modification (e.g., update of the object)would not affect virtually-owned attributes (e.g., in the selected viewgenerated by virtual master data management system 160 from data sources150). This may be accomplished by setting a flag indicating thiscondition (e.g., to services module 194 performing the updateoperation).

If the object has been mapped as determined at step 1105, the mappinginformation is examined (e.g., via attribute control module 196) todetermine the presence of transcoded values defined within the mappingfor the object. If transcoded values are defined within the mapping forthe object as determined at step 1110, the object is examined (e.g., viaattribute control module 196) to determine the presence within theobject of any of the specific transcoded values defined in the mapping.When none of the specific transcoded values from the mapping are presentwithin the object as determined at step 1115, the transaction is allowedat step 1130 since any modification (e.g., update of the object) wouldnot affect the mapped, virtually-owned attributes (e.g., in the selectedview generated by virtual master data management system 160 from datasources 150). This may be accomplished by setting a flag indicating thiscondition (e.g., to services module 194 performing the transaction).

When the mapping does not define any transcoded values for the object,or one or more of the specific transcoded values from the mapping arepresent within the object, as determined at steps 1110 or 1115, theobject attributes are examined (e.g., via attribute control module 196)to determine the presence of mapped attributes to be updated by theupdate operation. If mapped attributes are to be updated as determinedat step 1120, the operation is not permitted, and rolled back at step1125 since any modification (e.g., update of the object) would affectthe mapped, virtually-owned attributes (e.g., in the selected viewgenerated by virtual master data management system 160 from data sources150). In this case, the flag may be set to indicate a roll backtransaction (e.g., to services module 194 to perform the roll back).However, when no mapped attributes are to be updated, the transaction isallowed at step 1130 since any modification (e.g., update of the object)would not affect virtually-owned attributes (e.g., in the selected viewgenerated by virtual master data management system 160 from data sources150). This may be accomplished by setting a flag indicating thiscondition (e.g., to services module 194 performing the transaction).

A manner of processing queries for entities (including any supplementalattributes) within the plural architecture master data management system(e.g., via master data management server system 110 and virtual masterdata management system modules 161, physical master data managementsystem modules 171, request processing framework 180, and/or entitymanagement module 190) is illustrated in FIG. 12. Initially, a query foran entity is received by request processing framework 180. The query ispassed to services of services module 194 (e.g., getParty, getPerson,getOrganization, getPartyByAdminSysKey, getPartyByEntityId, etc.) toprocess the query. These services retrieve entities (e.g., person,organization, etc.) and/or parties and corresponding virtually andphysically owned attributes within the virtual and/or physical masterdata management systems based on various criteria (e.g., entity or partyidentification, system keys, etc.). The entity is initially retrievedfrom the repository within the physical master data management systemincluding any supplemental attributes at step 1205. For example, if theentity is fully persisted, the entity data (including any supplementalattributes) is retrieved from the repository of the physical master datamanagement system.

The mapping information and/or entity information retrieved from thephysical master data management system is examined to determine thepresence of information (e.g., virtually-owned or mapped attributes,etc.) for the desired entity within the virtual master data managementsystem. This may be accomplished by examining the status indicator(e.g., indicating registration or fully persisted modes) for the entityas described above. When no information for the entity is present withinthe virtual master data management system as determined at step 1210,the information retrieved from the physical master data managementsystem including any supplemental attributes is returned at step 1225.

However, when information for the entity is present within the virtualmaster data management system as determined at step 1210, the virtualmaster data management system generates the selected entity view fromdata retrieved from data sources 150 at step 1215. For example, if theentity is persisted in the registration mode (e.g., the entityidentification and member record identifiers are persisted), the entitydata is retrieved from the virtual master data management system (whileany supplemental attributes are or have been retrieved from the physicalmaster data management system). In this case, the virtual master datamanagement system utilizes the entity identification and member recordidentifiers to generate the selected entity view from data retrievedfrom data sources 150.

Once the information is retrieved from the virtual master datamanagement system, the information from the virtual and physical masterdata management systems (including virtually-owned and physically-owned(or supplemental) attributes) are combined and/or consolidated at step1220 and returned at step 1225.

It will be appreciated that the embodiments described above andillustrated in the drawings represent only a few of the many ways ofimplementing embodiments for plural architecture master data managementwith supplemental attributes.

The environment of the present invention embodiments may include anynumber of computer or other processing systems (e.g., client or end-usersystems, server systems, etc.), data sources, and databases or otherrepositories arranged in any desired fashion, where the presentinvention embodiments may be applied to any desired type of computingenvironment (e.g., cloud computing, client-server, network computing,mainframe, stand-alone systems, etc.). The computer or other processingsystems employed by the present invention embodiments may be implementedby any number of any personal or other type of computer or processingsystem (e.g., desktop, laptop, PDA, mobile devices, etc.), and mayinclude any commercially available operating system and any combinationof commercially available and custom software (e.g., browser software,communications software, server software, virtual master data managementsystem modules, matching and linking engine, physical master datamanagement system modules, request processing framework, entitymanagement module, entity event notification module, services module,attribute control module, etc.). These systems may include any types ofmonitors and input devices (e.g., keyboard, mouse, voice recognition,etc.) to enter and/or view information.

It is to be understood that the software (e.g., virtual master datamanagement system modules, matching and linking engine, physical masterdata management system modules, request processing framework, entitymanagement module, entity event notification module, services module,attribute control module, etc.) of the present invention embodiments maybe implemented in any desired computer language and could be developedby one of ordinary skill in the computer arts based on the functionaldescriptions contained in the specification and flow charts illustratedin the drawings. Further, any references herein of software performingvarious functions generally refer to computer systems or processorsperforming those functions under software control. The computer systemsof the present invention embodiments may alternatively be implemented byany type of hardware and/or other processing circuitry.

The various functions of the computer or other processing systems may bedistributed in any manner among any number of software and/or hardwaremodules or units, processing or computer systems and/or circuitry, wherethe computer or processing systems may be disposed locally or remotelyof each other and communicate via any suitable communications medium(e.g., LAN, WAN, Intranet, Internet, hardwire, modem connection,wireless, etc.). For example, the functions of the present inventionembodiments may be distributed in any manner among the variousend-user/client and server systems, and/or any other intermediaryprocessing devices. The software and/or algorithms described above andillustrated in the flow charts may be modified in any manner thataccomplishes the functions described herein. In addition, the functionsin the flow charts or description may be performed in any order thataccomplishes a desired operation.

The software of the present invention embodiments (e.g., virtual masterdata management system modules, matching and linking engine, physicalmaster data management system modules, request processing framework,entity management module, entity event notification module, servicesmodule, attribute control module, etc.) may be available on anon-transitory computer useable medium (e.g., magnetic or opticalmediums, magneto-optic mediums, floppy diskettes, CD-ROM, DVD, memorydevices, etc.) of a stationary or portable program product apparatus ordevice for use with stand-alone systems or systems connected by anetwork or other communications medium.

The communication network may be implemented by any number of any typeof communications network (e.g., LAN, WAN, Internet, Intranet, VPN,etc.). The computer or other processing systems of the present inventionembodiments may include any conventional or other communications devicesto communicate over the network via any conventional or other protocols.The computer or other processing systems may utilize any type ofconnection (e.g., wired, wireless, etc.) for access to the network.Local communication media may be implemented by any suitablecommunication media (e.g., local area network (LAN), hardwire, wirelesslink, Intranet, etc.).

The system may employ any number of any conventional or other datasources, databases, data stores, or storage structures (e.g., files,databases, data structures, data or other repositories, etc.) to storeinformation (e.g., master or other data, mappings, persisted entities,supplemental or other attributes, virtual and physical data models,linking information, views, etc.). The data sources and database systemmay be implemented by any number of any conventional or other databases,data stores or storage structures (e.g., files, databases, datastructures, data or other repositories, etc.) to store information(e.g., master or other data, mappings, persisted entities, supplementalor other attributes, virtual and physical data models, linkinginformation, views, etc.). The database system may be included within orcoupled to the server and/or client systems. The data sources, databasesystems, and/or storage structures may be remote from or local to thecomputer or other processing systems, and may store any desired data.

The plural architecture master data management system may include anyquantity of any conventional or other types of data management systemsemploying any suitable management approaches (e.g., registry or virtual,centralized or physical, etc.). Any quantity of entities may bemaintained in the data management systems, either solely in anindividual system, or jointly in any combinations of the systems.Further, the data management systems may be queried for informationindividually to retrieve information from that individual system, or toretrieve information in a collective fashion (e.g., retrieve informationfrom a plurality of the data management systems from a single query,etc.).

The virtual master data management system may produce any quantity ofany types of views of an entity based on any desired criteria (e.g.,uniqueness constraints, data types, etc.) for selection (e.g., manuallyby a user, automatically based on any desired criteria, etc.). Further,any quantity of the views may be persisted to the physical master datamanagement system.

The virtual and physical data models may include any quantity of anysuitable structures to accommodate the data of an application. Thevirtual and physical data models may be mapped in any desired fashion,where any desired information may be utilized to indicate the mappings(e.g., pointers, foreign or other database table keys, etc.). Further,the virtual and physical data models may be implemented by any quantityof any desired data or storage structures (e.g., database tables orobjects, lists or arrays, queues, etc.).

The repository of the physical master data management system may beimplemented by any number of any conventional or other databases, datastores or storage structures (e.g., files, databases, data structures,data or other repositories, etc.) to store information (e.g., persistedentities or parties, supplemental or other attributes, etc.). Theinformation for the parties and/or supplemental attributes may be storedwithin any quantity of any desired data or storage structures (e.g.,database tables or objects, lists or arrays, queues, etc.). The entityand party identifications may include any quantity of any types ofcharacters, numbers and/or symbols to uniquely identify a party oridentity. The party identification may be generated in any fashion(e.g., based on an entity identification, an independent formula oralgorithm, sequential or other numbering, etc.). Further, the memberrecord identifiers may include any quantity of any types of characters,numbers, and/or symbols to uniquely identify a record within the datasources. The status indicator may include any desired values andindicate any quantity of any types of states (e.g., registration mode,full persistence mode, etc.). The values may be assigned to the statesin any fashion.

The synchronization may persist any desired modifications between thevirtual master data management system and the physical master datamanagement system (e.g., modification to data in the data sources,modification to links of records for an entity, modification to data inthe physical master data management system, etc.). The modifications maybe detected in any fashion (e.g., comparisons of data, the selectedview, member record links, business keys, etc.), where an entity mayinclude any quantity of business or other keys each including anyquantity of any fields of an attribute. The notification may be of anytype or format, and include any type of indication (e.g., alert, alarm,data, etc.) to indicate the occurrence of the event. The persistence ofdata may be initiated manually (e.g., by a user, etc.) or automaticallyand may occur in response to the event or other condition, where anydesired rules or criteria may be utilized to control the automaticpersistence (e.g., size of entity, completeness of data, etc.).

The names of the services to persist and retrieve information as usedherein are by example only, where the services may include any desiredlabels or names and may retrieve information based on any desiredcriteria (e.g., keys, identifiers, entity names or other attributes,etc.). The registration persistence mode may persist any desiredinformation pertaining to the entity (e.g., record or other identifiers,identifications, etc.), where the information may include any portion ofthe entity data. Further, the full persistence mode may persist anydesired information pertaining to the entity (e.g., record or otheridentifiers, identifications, etc.), where the information may includethe entirety or any portion of the entity data.

The supplemental attributes may be of any quantity or type, and may beassociated with any objects or entities in the physical (e.g., persisted(e.g., registration or full), etc.) and/or virtual master datamanagement systems. The supplemental attributes may be maintained and/ormanaged entirely or partially within the virtual master data managementsystem, the physical master data management system, or any combinationthereof.

Any operations on objects (or persisted entities) or portions thereof(e.g., add, create, delete, update, combine entities/objects, etc.) maybe controlled in any desired fashion based on any desired criteria(e.g., effect (e.g., data integrity/consistency, etc.) on correspondingmapped attributes, values, transcoding or other functions, etc.). Thecriteria may be determined from mapping or other information. Theoperation may be controlled in any manner (e.g., prevented or blocked,allowed to continue, initiate other actions, deferred or delayed, etc.).Further, any desired actions may be performed in response to anoperation on an object (or persisted entity) that is permitted orblocked (e.g., roll back work, etc.). The operation may be interceptedin any desired fashion based on any types of notifications (e.g.,polling, status flag, triggering mechanism, etc.). The flag indicatingthe operation status may include any desired values and indicate anyquantity of any types of states (e.g., continue operation, preventoperation, roll back, etc.). The flag values may be assigned in anyfashion.

The attributes may be retrieved from the virtual and/or physical masterdata management systems and combined and/or consolidated in any fashion(e.g., remove duplicates, combine all or any portion of retrieved data,etc.).

The present invention embodiments may employ any number of any type ofuser interface (e.g., Graphical User Interface (GUI), command-line,prompt, etc.) for obtaining or providing information (e.g., queries,query results, configuration information, selections, etc.), where theinterface may include any information arranged in any fashion. Theinterface may include any number of any types of input or actuationmechanisms (e.g., buttons, icons, fields, boxes, links, etc.) disposedat any locations to enter/display information and initiate desiredactions via any suitable input devices (e.g., mouse, keyboard, etc.).The interface screens may include any suitable actuators (e.g., links,tabs, etc.) to navigate between the screens in any fashion.

The present invention embodiments are not limited to the specific tasksor algorithms described above, but may employ any quantity of any typesof data management systems to be utilized for management of any types ofdata corresponding to any objects (e.g., entities, animate or inanimateobjects, etc.). The entities may represent any desired corporate,business, legal, personal, or other entities (e.g., person, corporation,company, organization, business, animate or inanimate object, etc.).Further, any quantity of any types of attributes may be utilized tosupplement or enrich the data, where any operations on persisted objectsmay be controlled to preserve the integrity of a view.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”,“comprising”, “includes”, “including”, “has”, “have”, “having”, “with”and the like, when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible systems ofsystems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative systems, the functions noted in the block mayoccur out of the order noted in the figures. For example, two blocksshown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

1-7. (canceled)
 8. A system for managing data within a plurality of datamanagement architectures comprising: at least one processor configuredto: persist an entity managed by a first data management architecture toa second data management architecture, wherein the first data managementarchitecture manages entity data within one or more data sources and thesecond data management architecture manages persisted entities with datafrom the one or more data sources within a common repository, andwherein one or more entity attributes of the entity are mapped betweenthe first and second data management architectures; and provide one ormore supplemental attributes for the persisted entity within the seconddata management architecture, wherein the one or more supplementalattributes are unmapped between the first and second data managementarchitectures.
 9. The system of claim 8, wherein the at least oneprocessor is further configured to: control performance of an operationfor one or more attributes of the persisted entity based on a presenceof a mapping for the one or more attributes between the first and seconddata management architectures.
 10. The system of claim 9, whereincontrolling performance of an operation comprises: enabling theoperation to be performed in response to the mapping indicating thatentity attributes of the first data management architecture mapped tothe one or more attributes of the persisted entity are unaffected by theoperation.
 11. The system of claim 9, wherein controlling performance ofan operation further comprises: enabling the operation to be performedon the one or more attributes of the persisted entity in response to theone or more attributes being supplemental attributes.
 12. The system ofclaim 9, wherein controlling performance of an operation comprises:preventing the operation from being performed in response to the mappingindicating that entity attributes of the first data managementarchitecture mapped to the one or more attributes of the persistedentity are affected by the operation.
 13. The system of claim 12,wherein controlling performance of an operation further comprises:rolling back the operation in response to preventing the operation frombeing performed.
 14. The system of claim 8, wherein the at least oneprocessor is further configured to: retrieve the persisted entity byretrieving the one or more entity attributes of the entity from thefirst data management architecture, retrieving the one or moresupplemental attributes of the persisted entity from the second datamanagement architecture, and combining the retrieved entity attributesand the retrieved supplemental attributes.
 15. A computer programproduct for managing data within a plurality of data managementarchitectures comprising: a computer readable storage medium havingcomputer readable program code embodied therewith, the computer readableprogram code comprising computer readable program code configured to:persist an entity managed by a first data management architecture to asecond data management architecture, wherein the first data managementarchitecture manages entity data within one or more data sources and thesecond data management architecture manages persisted entities with datafrom the one or more data sources within a common repository, andwherein one or more entity attributes of the entity are mapped betweenthe first and second data management architectures; and provide one ormore supplemental attributes for the persisted entity within the seconddata management architecture, wherein the one or more supplementalattributes are unmapped between the first and second data managementarchitectures.
 16. The computer program product of claim 15, wherein thecomputer readable program code further comprises computer readableprogram code configured to: control performance of an operation for oneor more attributes of the persisted entity based on a presence of amapping for the one or more attributes between the first and second datamanagement architectures.
 17. The computer program product of claim 16,wherein controlling performance of an operation comprises: enabling theoperation to be performed in response to the mapping indicating thatentity attributes of the first data management architecture mapped tothe one or more attributes of the persisted entity are unaffected by theoperation.
 18. The computer program product of claim 16, whereincontrolling performance of an operation further comprises: enabling theoperation to be performed on the one or more attributes of the persistedentity in response to the one or more attributes being supplementalattributes.
 19. The computer program product of claim 16, whereincontrolling performance of an operation comprises: preventing theoperation from being performed in response to the mapping indicatingthat entity attributes of the first data management architecture mappedto the one or more attributes of the persisted entity are affected bythe operation; and rolling back the operation in response to preventingthe operation from being performed.
 20. The computer program product ofclaim 15, wherein the computer readable program code further comprisescomputer readable program code configured to: retrieve the persistedentity by retrieving the one or more entity attributes of the entityfrom the first data management architecture, retrieving the one or moresupplemental attributes of the persisted entity from the second datamanagement architecture, and combining the retrieved entity attributesand the retrieved supplemental attributes.